前六天都在講原理
今天終於要寫程式了,再不開 Android Studio,我都快以為這是 ADB 專欄
建立一個 Empty Activity:
com.tony.toolbox
選 26 是因為之後會用到有 timeout 的 Process.waitFor()
而且再往下支援,寫相容程式的時間可能比使用者人數還多
在 version catalog 加入 Compose、Material 3 和 Shizuku:
[libraries]
shizuku-api = { group = "dev.rikka.shizuku", name = "api", version.ref = "shizuku" }
shizuku-provider = { group = "dev.rikka.shizuku", name = "provider", version.ref = "shizuku" }
接著在 app/build.gradle.kts 打開:
buildFeatures {
compose = true
buildConfig = true
aidl = true
}
aidl = true 很容易漏掉
漏掉後 Gradle 不一定罵你,只會假裝沒看到檔案,讓你開始懷疑自己
AGP 9 的內建 Kotlin 跟原本的 Kotlin plugin 撞在一起
Android 開發的傳統藝能:程式一行都沒寫,建置先壞掉
最後在 gradle.properties 加上:
android.builtInKotlin=false
android.newDsl=false
重新 Sync,世界暫時恢復和平
com.tony.toolbox
├── shizuku/
├── data/
├── ui/
└── feature/
Shizuku 相關操作全部放進 shizuku/
不要每個功能都自己呼叫 API,不然未來改一次底層,全專案會陪你一起加班
Application 先放個空殼:
class ToolboxApp : Application() {
lateinit var container: AppContainer
private set
override fun onCreate() {
super.onCreate()
container = AppContainer(this)
}
}
這個專案先不用 Hilt,手寫 AppContainer 就好
規模還沒大到需要請一台挖土機來種盆栽
最後按下 Run,看到 Hello Android
看起來像什麼都沒做
但至少它能編譯、能安裝、沒有爆炸
明天讓它跟 Shizuku 講第一句話